Cloud computing continues to grow as a preferred platform for information technology (IT) solutions. For example, cloud computing allows enterprises to scale in or out servers very quickly to adapt to business needs. For instance, thousands of virtual machines (VMs) can be easily provisioned based on pre-built images in minutes. This allows, for example, applications such as Web servers to be provisioned in different data centers during peak times to handle high loads.
However, one of the challenges with provisioning large scale enterprise applications is that it can be time consuming and error prone to configure the applications consistently. In large scale systems, enterprise applications running on virtual machines have to for example be registered to load balancers, be connected to application servers, be set to cluster and session sharing, etc.
Currently, one such approach is to utilize script-based configuration automation with tools such as CHEF™ and URBANCODE™. However, when an application/virtual machine such as a Web server is configured with a script-based solution, it cannot be reused for some other context. Furthermore, the script has to be run every time a virtual machine is deployed to a new environment, which can be time consuming and error prone.
An alternative approach is to utilize VM image based deployment, in which the entire configuration is built into the VM image. The drawback of this approach is that the VM image can no longer be used when the environment changes. Accordingly, this approach lacks flexibility
Accordingly, current approaches to configuring enterprise type applications in a VM environment lack effectiveness, efficiency, flexibility and reusability.